package org.jsola.hr.helper;

import org.jsola.hr.dto.MemoEmpAddDTO;
import org.jsola.hr.dto.MemoEmpUpdateDTO;
import org.jsola.hr.entity.MemoEmpDO;
import org.jsola.hr.query.MemoEmpQuery;
import org.jsola.hr.service.IMemoEmpService;
import org.jsola.hr.vo.MemoEmpVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;

import java.util.List;

import static org.jsola.hr.core.AbstractTest.SITE_ID;



/**
 * 备忘录相关员工
 *
 * @author zhr
 */
@Component
public class MemoEmpTestHelper extends BaseTestHelper {
    
    @Autowired
    private IMemoEmpService memoEmpService;

    /**
     * 生成add测试数据
     * @return MemoEmpAddDTO
     */
    public MemoEmpAddDTO getMemoEmpAddDTO(){
        MemoEmpAddDTO memoEmpAddDTO = new MemoEmpAddDTO();
        memoEmpAddDTO.setMemoId(getRandomValue("varchar",32));
        memoEmpAddDTO.setEmpId(getRandomValue("varchar",32));
        memoEmpAddDTO.setEmpName(getRandomValue("varchar",32));
        return memoEmpAddDTO;
    }


    /**
     * 生成update测试数据
     * @return MemoEmpUpdateDTO
     */
    public MemoEmpUpdateDTO getMemoEmpUpdateDTO(MemoEmpVO memoEmpVO){
        return memoEmpService.selectDOById(memoEmpVO.getId(), SITE_ID).to(MemoEmpUpdateDTO.class);
    }

    /**
     * 生成查询数据
     * @return MemoEmpQuery
     */
    public MemoEmpQuery getMemoEmpQuery() {
        MemoEmpQuery memoEmpQuery = new MemoEmpQuery();
        List<MemoEmpDO> memoEmpDOList = memoEmpService.list(new MemoEmpDO(),SITE_ID);
        if (!CollectionUtils.isEmpty(memoEmpDOList)) {
            MemoEmpDO memoEmpDO = memoEmpDOList.get(0);
            memoEmpQuery = memoEmpDO.to(MemoEmpQuery.class);
        }
        return memoEmpQuery;
    }

    /**
     * 保存示例
     * @return MemoEmpVO
     */
    public MemoEmpVO saveMemoEmpExample(){
        MemoEmpAddDTO addDTO = this.getMemoEmpAddDTO();
        MemoEmpVO memoEmpVO = memoEmpService.save(addDTO,buildTokenUser());
        return memoEmpVO;
    }


}

